1. Field of the Invention
This invention generally relates to data processing systems including one or more hosts and one or more data storage systems, such as a disk array, or direct access, storage device, with multiple physical disk drives and more specifically to a method and apparatus for enabling multiple hosts to issue optimized overlapping input-output, or I/O, requests to a particular logical device in the data storage system.
2. Description of Related Art
As the capabilities of data processing systems have increased, applications for use in those data processing systems have become more sophisticated. Now a data processing system may contain multiple hosts operating with independent host applications that access data in a large capacity data storage system either directly or over a network. Today, data storage systems are generally divided into logical devices or into blocks called by other names, such as logical volumes, data sets, files, etc. It is highly desirable that a data storage system in which a single logical device, that may store multiple files, be enabled to handle multiple concurrent requests for access to different files even from one or more different hosts and host applications.
A conventional data processing system includes a main frame computer or host including multiple central processors that interact with a data storage system. The data storage system generally includes a xe2x80x9cdisk array storage device,xe2x80x9d or xe2x80x9cdirect access storage devicexe2x80x9d (e.g., a xe2x80x9cDASDxe2x80x9d) in which multiple physical disk drives are organized in multiple logical devices. The host communicates with the DASD through I/O requests provided by the operating system associated with the host. The host operating system heretofore has generally limited accesses to a given logical device to a single access at a time. For example, in the known MVS operating system, one unit control block (UCB) is assigned to each logical device. When a first I/O request identifies a file or dataset in a logical device, a UCB assigned to that logical device is set to a busy state until the entire I/O request is completed. Any following requests for the same logical device generated during the interval of the first request were queued to await the availability of that one UCB even though the I/O request was to a different file or dataset. Consequently, this feature forced all the I/O requests to a single logical device to be handled in seriatim.
There are some applications in which such an I/O request serialization may not adversely effect all operations. For example, in data storage systems that incorporate cache memory with the physical disk drives write operations merely transfer data to the cache memory. Read operations that identify data within the cache memory are handled in a minimal time so there is a minimal delay until a next read or write operation can be started. If it could be assured that all such requests could be handled in the cache memory, serialization would impose a minimal penalty. However, in most applications data will be required that is not in the cache memory, so access to a physical disk drive for the data will be necessary. The resulting interval for transferring data from the physical disk drive to the cache memory is significantly longer than the time to transfer data between the host and the cache memory. Consequently, other write and read requests, that might otherwise access data already in the cache, are delayed until the read miss operation has been completed. In these situations serialization adversely affects host processing significantly.
In accordance with one new approach an operating system that normally uses one unit control block, or UCB, defines that UCB as a xe2x80x9cbase UCBxe2x80x9d. A number of unassigned UCB""s are allocated to the same logical device. These are known as alias UCB""s. In accordance with this approach a host can issue concurrent or overlapped I/O requests by assigning each different request to one of the base or alias UCB""s up to the total number of UCB""s allocated to the logical device. What is needed is a disk array storage device that can handle such overlapped I/O requests.
Therefore it is an object of this invention to provide a method and apparatus for enabling multiple concurrent accesses to a single logical device in a data storage system.
Another object of this invention is to provide the capability of accessing the same logical device in a data storage system from multiple hosts with explicit allegiances.
Still another object of this invention is to provide the capability of accessing the same logical device in a data storage system from multiple hosts with explicit allegiances where the requests for access are overlapped.
Yet still another object of this invention is to provide the ability to direct multiple I/O requests from multiple hosts with explicit allegiances in combination with the capability of accommodating multiple concurrent or overlapped I/O requests.
In accordance with this invention, a disk array storage facility is enabled to handle overlapped input-output requests to a single logical volume. An input-output request contains a plurality of predetermined parameters including an address range and the storage facility includes an overlap polling queue. The disk array storage facility establishes a table for the logical volume with at least one entry for input-output requests and their corresponding parameters including the address range. The parameters in each new entry are tested respect to the parameters for input-output request entries in the table including the comparing of the address range in the new input-put request with the address range of each input-output request in the table to determine whether to place the new input-output request on the overlap polling queue. In response to the testing, one of a plurality of control functions is performed. One control function enables the processing of the input-output request by the storage facility and the polling of entries on the overlap polling queue.